﻿using System;
using System.Reflection;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
using System.IO;
using System.Xml;
/****************************************************************************************
 * Sistema    : Sistema de Gestión de Clinica
 * Modulo     : Facturación y Presupuestos
 * Descripción: 
 * Autor      : JPEREZ
 * Fecha      : 2011-06-01
 ****************************************************************************************/

namespace com.clinica.business.entities
{
    [Serializable]
    public class Entity
    {
        public object GetPropertyValue(string propertyName)
        {
            PropertyInfo[] pInfo = this.GetType().GetProperties(
                BindingFlags.DeclaredOnly |
                BindingFlags.Instance |
                BindingFlags.Public |
                BindingFlags.GetProperty);
            foreach (PropertyInfo property in pInfo)
                if (property.Name.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase))
                    return property.GetValue(this, null);
            return null;
        }
        public void SetPropertyValue(string propertyName, object value)
        {
            PropertyInfo[] pInfo = this.GetType().GetProperties(
                BindingFlags.DeclaredOnly |
                BindingFlags.Instance |
                BindingFlags.Public |
                BindingFlags.SetProperty);
            foreach (PropertyInfo property in pInfo)
                if (property.Name.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase))
                {
                    property.SetValue(this, value, null);
                    break;
                }
        }
        #region Campos Heredables de Auditoria
        private DateTime fechaModificacionFiled;
        [Column("Fecha_Modificacion")]
        public DateTime FechaModificacion
        {
            get { return fechaModificacionFiled; }
            set { fechaModificacionFiled = value; }
        }
        private DateTime fechaCreacionField;
        [Column("Fecha_Creacion")]
        public DateTime FechaCreacion
        {
            get { return fechaCreacionField; }
            set { fechaCreacionField = value; }
        }
        private string usuarioCreacionField = string.Empty;
        [Column("codUsuarioCreate")]
        public string UsuarioCreacion
        {
            get { return usuarioCreacionField; }
            set { usuarioCreacionField = value; }
        }
        private string usuarioModificacion = string.Empty;
        [Column("codUsuarioUpdate")]
        public string UsuarioModificacion
        {
            get { return usuarioModificacion; }
            set { usuarioModificacion = value; }
        }
        #endregion
        //public int CodigoError { get; set; }

        //private StringBuilder mensajeField = new StringBuilder();
        //public StringBuilder MensajeError
        //{
        //    get { return mensajeField; }
        //    set { mensajeField = value; }
        //}

        public int CodigoTransaccion { get; set; }
        public string MensajeTransaccion { get; set; }
        public int FlagError { get; set; }

    }
}
